#include <stdio.h>
#define MAX_ARRAY_LENGTH 20

#undef FILE_SIZE
#define FILE_SIZE 42

#ifndef MESSAGE
#define MESSAGE "You wish!"
#endif

#ifdef DEBUG
/* Your debugging statements here */
/*这个指令告诉 CPP 如果定义了 DEBUG，则执行处理语句。
在编译时，如果您向 gcc 编译器传递了 -DDEBUG 开关量，这个指令就非常有用。
它定义了 DEBUG，您可以在编译期间随时开启或关闭调试。*/
#endif

#define message_for(a, b) \
    printf(#a " and " #b ": We love you!\n")

#define tokenpaster(n) printf("token" #n " = %d \n", token##n)

#if !defined(MESSAGE)
#define MESSAGE "You wish!"
#endif

#define MAX(x, y) ((x) > (y) ? (x) : (y))

int main(void)
{
    printf("File :%s\n", __FILE__);
    printf("Date :%s\n", __DATE__);
    printf("Time :%s\n", __TIME__);
    printf("Line :%d\n", __LINE__);
    printf("ANSI :%d\n", __STDC__);
    message_for(Carole, Debra);
    int token34 = 40;

    tokenpaster(34);

    printf("Here is the message: %s\n", MESSAGE);

    printf("Max between 20 and 10 is %d\n", MAX(10, 20));
    return 0;
}